package top.gytf.unifiedcall.common.support;

import lombok.Builder;
import lombok.Data;
import lombok.experimental.FieldNameConstants;
import org.springframework.lang.Nullable;
import top.gytf.unifiedcall.model.contract.ApiContract;
import top.gytf.unifiedcall.model.detail.UnifiedCallPackageDetail;
import top.gytf.unifiedcall.model.detail.Version;

/**
 * 内置的协定
 */
@Data
@Builder
@FieldNameConstants
public class UnifiedCallApiContract implements ApiContract {
    /**
     * 是否直接返回原始响应，不进行包装
     */
    private final boolean customizedResponse;

    /**
     * 接口支持的最小版本
     * @see UnifiedCallPackageDetail#getVersion()
     */
    @Nullable
    private final Version since;

    /**
     * 接口支持的最大版本
     * @see UnifiedCallPackageDetail#getVersion()
     */
    @Nullable
    private final Version until;
}
